package com.example.nfc.server.utils;

import android.util.Log;


public class LogUtil {

    //日志开关
    public static boolean isOpen = true;;
    /**
     * 截断输出日志
     * @param msg
     */
    public static void i (String tag, String msg) {
        if(!isOpen){
            return;
        }

        if (tag == null || tag.length() == 0
                || msg == null || msg.length() == 0)
            return;

        int segmentSize = 3 * 1024;
        long length = msg.length();
        if (length <= segmentSize ) {// 长度小于等于限制直接打印
            Log.i(tag, msg);
        }else {
            while (msg.length() > segmentSize ) {// 循环分段打印日志
                String logContent = msg.substring(0, segmentSize );
                msg = msg.replace(logContent, "");
                Log.i(tag,"+"+ logContent);
            }
            Log.i(tag,"+"+ msg);// 打印剩余日志
        }
    }

    public static void d (String tag, String msg){
        if(!isOpen){
            return;
        }
        print(0,tag,msg);
    }
    public static void e (String tag, String msg){
        if(!isOpen){
            return;
        }
        print(2,tag,msg);
    }
    public static void v (String tag, String msg){
        if(!isOpen){
            return;
        }
        print(1,tag,msg);
    }

    private static void print(int type, String tag, String msg){
        if (tag == null || tag.length() == 0
                || msg == null || msg.length() == 0)
            return;

        int segmentSize = 3 * 1024;
        long length = msg.length();
        if (length <= segmentSize ) {// 长度小于等于限制直接打印
            printf(type,tag, msg);
        }else {
            while (msg.length() > segmentSize ) {// 循环分段打印日志
                String logContent = msg.substring(0, segmentSize );
                msg = msg.replace(logContent, "");
                printf(type,tag,"-------------------"+ logContent);
            }
            printf(type,tag,"-------------------"+ msg);// 打印剩余日志
        }
    }
    private static  void printf(int type, String tag, String msg){
        switch (type){
            case 0:
                Log.d(tag,msg);
                break;
            case 1:
                Log.v(tag,msg);
                break;
            case 2:
                Log.e(tag,msg);
                break;
        }
    }


}
